The present invention relates to machine vision systems and more specifically to a system wherein a fast processor is used to facilitate a machine vision process in parallel with obtaining images at different focus positions of a camera lens to expedite the overall vision process.
Machine vision systems have been developed for many different applications. For example, vision systems have been developed for reading bar codes and other types of symbols placed on packages or products to obtain information there from. Other vision systems have been developed for inspecting manufactured parts for features/characteristics.
Many vision systems include a camera for obtaining images of symbols or items to be imaged. A processor receives the images and extracts information there from which can then be used to perform one or more vision processes. In many applications the distance between a camera sensor and a symbol or item to be imaged may vary between uses. In these cases, in order to obtain useful images (i.e., images from which data required to complete machine vision processes can be extracted), an adjustable lens and auto-focus system is often provided. In these cases, when the system is activated to perform a vision process, the lens and auto-focus system automatically focus the lens so that a clear image of the symbol or item to be imaged is generated on the camera sensor. After the focusing process is completed, a clear image of the symbol or item to be imaged is obtained and is processed to complete the vision process.
Generally there are two types of auto-focus systems including “hunting” systems and “range finding” systems. In the case of hunting systems, as the label implies, a series of images (i.e., image iterations) are obtained where a focus determining process is performed between each two consecutively obtained images. Where the focus determining process indicates that the lens is not in focus, a next image is obtained with the lens at a different focus setting. The process continues until the focus determining process indicates that the lens position is focused on the symbol or item to be imaged at which point a focused image is obtained and processed to complete the vision process (e.g., find and decode a symbol in the image, etc).
In the case of range finding systems, an explicit determination of the distance of a symbol or item to be imaged from a lens or sensor is made and thereafter the lens is controlled to adjust the focus to a position associated with the determined distance. Thus, for instance, a laser light pencil beam may be directed toward a surface associated with a symbol or an item to be imaged and a reflected beam may be sensed and used to determine the symbol to sensor distance.
While hunting solutions work well in some applications, unfortunately these solutions are not fast enough for other applications where high speed vision processes are required or desirable. To this end, known auto-focus systems often require a large amount of time (e.g., tens of milliseconds) per image iteration just to adjust the lens prior to obtaining a next image in addition to the time required to perform the focus determining process to analyze each acquired image to make a decision on what to do next (i.e., obtain another image using a different focus position if not in focus and to perform the vision process on the obtained image if in focus). Overall iterative systems sometimes spend hundreds of milliseconds on focusing before even starting to perform the vision process on a focused image. This delay is noticeable to a user (e.g., a person using a swipe reader, a person using a hand held symbol reader, etc.).
Range finding systems typically operate more quickly than hunting systems. Unfortunately, however, range finding systems require dedicated range finding hardware in addition to other system hardware and therefore increase overall system costs.